Guided photography and video on a mobile device

ABSTRACT

In an example embodiment, an item listing process is run in an item listing application. Upon reaching a specified point in the item listing process, a camera application on the user device is triggered (or the camera directly accessed by the item listing application) to enable a user to capture images using the camera, wherein the triggering includes providing a wireframe overlay informing the user as to an angle at which to capture images from the camera.

PRIORITY

This application is a continuation of and claims the benefit of priorityto U.S. patent application Ser. No. 13/650,372, filed on Oct. 12, 2012,which is hereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

This application relates to the technical fields of web pages and mobiledevices and, in one example embodiment, a system and method to triggerweb workflow from a mobile device and vice-versa.

BACKGROUND

With the dawn of mobile devices, and specifically cameras embedded inthe mobile devices, users are utilizing their mobile phones to aid inactivities that were traditionally the domain of desktop or laptopcomputers. For example, users are using their mobile devices to enterand post item listing information for online sales, such as onlineauctions. The cameras on these mobile devices can come in handy whenphotographing the item or items to be sold, and the ability to have thecamera integrated with the same device where the user is enteringinformation (through, for example, a stand-alone application installedon the mobile device), makes the experience more seemless for users. Theline between retailers and individual sellers has been blurred as moreand more users have the ability to quickly and efficiently list itemsfor sale. There are certain items, cars for example, where retailers areoften able to get more money or better sales results. Part of this isbecause retailers of these items have standardized, and effective, meansto photograph the items. With the case of cars, auto dealers often takemultiple pictures from preset angles and preset car orientations (doorsopened or closed, for example) to achieve the best results. Indeed, theconsistency between the photographs of one vehicle and photographs ofanother vehicle can itself lend a sense of credibility to the sellerwhich can translate to higher sales. Individual sellers, however, oftenphotograph these items in wildly variable (and often ineffective) ways.

BRIEF DESCRIPTION OF DRAWINGS

Embodiments of the present invention are illustrated by way of exampleand not limitation in the figures of the accompanying drawings, in whichlike reference numbers indicate similar elements and in which:

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed.

FIG. 2 is a block diagram illustrating multiple applications 120 and 122that, in one example embodiment, are provided as part of the networkedsystem 102, shown in FIG. 1.

FIG. 3 is a diagram illustrating a method for guided photography on auser device in accordance with an example embodiment.

FIG. 4 is a diagram illustrating a method for guided photography on auser device in accordance with another example embodiment.

FIG. 5 is a block diagram illustrating a system in accordance with anexample embodiment.

FIG. 6 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with an example embodiment.

FIG. 7 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with another example embodiment.

FIG. 8 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with another example embodiment.

FIG. 9 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with another example embodiment.

FIG. 10 is a flow diagram illustrating a method for guiding the captureof information from a camera on a user device in accordance with anexample embodiment.

FIG. 11 is a flow diagram illustrating a method for guiding the captureof information from a camera on a user device in accordance with anotherexample embodiment.

FIG. 12 shows a diagrammatic representation of machine in the exampleform of a computer system 1200 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed.

DETAILED DESCRIPTION

Reference will now be made in detail to specific embodiments includingthe best modes contemplated by the inventors for carrying out theinvention. Examples of these specific embodiments are illustrated in theaccompanying drawings. It will be understood that it is not intended tolimit the scope of the claims to the described embodiments. On thecontrary, it is intended to cover alternatives, modifications, andequivalents as may be included within the spirit and scope of thedisclosure as defined by the appended claims. In the followingdescription, specific details are set forth in order to provide athorough understanding of the subject matter. Embodiments may bepracticed without some or all of these specific details. In addition,well known features may not have been described in detail to avoidunnecessarily obscuring the subject matter.

In accordance with the present invention, the components, process steps,and/or data structures may be implemented using various types ofoperating systems, programming languages, computing platforms, computerprograms, and/or general purpose machines. In addition, those ofordinary skill in the art will recognize that devices of a less generalpurpose nature, such as hardwired devices, field programmable gatearrays (FPGAs), application specific integrated circuits (ASICs), or thelike, may also be used without departing from the scope and spirit ofthe concepts disclosed herein. Embodiments may also be tangibly embodiedas a set of computer instructions stored on a computer readable medium,such as a memory device.

In an example embodiment, a user of a mobile device is guided throughthe process of taking photographs of an item using a specified template.The result of using this template is that photographs are taken atprespecified angles and a requisite number of photographs are taken toeffectively list an item for sale. In another example embodiment, thenumber and angles of the photographs are sufficient to generate a threedimensional model of the item.

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed. A networked system 102, inthe example forms of a network-based marketplace or publication system,provides server-side functionality, via a network 104 (e.g., theInternet or Wide Area Network (WAN)) to one or more clients. FIG. 1illustrates, for example, a web client 106 (e.g., a browser, such as theInternet Explorer browser developed by Microsoft Corporation of Redmond,Wash. State), and a programmatic client 108 executing on respectiveclient machines 110 and 112.

An Application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more marketplace applications 120 and payment applications122. The application servers 118 are, in turn, shown to be coupled toone or more databases servers 124 that facilitate access to one or moredatabases 126.

The marketplace applications 120 may provide a number of marketplacefunctions and services to users that access the networked system 102.The payment applications 122 may likewise provide a number of paymentservices and functions to users. The payment applications 122 may allowusers to accumulate value (e.g., in a commercial currency, such as theU.S. dollar, or a proprietary currency, such as “points”) in accounts,and then later to redeem the accumulated value for products (e.g., goodsor services) that are made available via the marketplace applications120. While the marketplace and payment applications 120 and 122 areshown in FIG. 1 to both form part of the networked system 102, it willbe appreciated that, in alternative embodiments, the paymentapplications 122 may form part of a payment service that is separate anddistinct from the networked system 102.

Further, while the client-server system 100 shown in FIG. 1 employs aclient-server architecture, the present invention is of course notlimited to such an architecture, and could equally well find applicationin a distributed, or peer-to-peer, architecture system, for example. Thevarious marketplace and payment applications 120 and 122 could also beimplemented as standalone software programs, which do not necessarilyhave networking capabilities.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the web interface supported by the webserver 116. Similarly, the programmatic client 108 accesses the variousservices and functions provided by the marketplace and paymentapplications 120 and 122 via the programmatic interface provided by theAPI server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, Calif.) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

FIG. 1 also illustrates a third party application 128, executing on athird party server machine 130, as having programmatic access to thenetworked system 102 via the programmatic interface provided by the APIserver 114. For example, the third party application 128 may, utilizinginformation retrieved from the networked system 102, support one or morefeatures or functions on a website hosted by the third party. The thirdparty website may, for example, provide one or more promotional,marketplace or payment functions that are supported by the relevantapplications of the networked system 102.

FIG. 2 is a block diagram illustrating multiple applications 120 and 122that, in one example embodiment, are provided as part of the networkedsystem 102, shown in FIG. 1. The applications 120 and 122 may be hostedon dedicated or shared server machines (not shown) that arecommunicatively coupled to enable communications between servermachines. The applications themselves are communicatively coupled (e.g.,via appropriate interfaces) to each other and to various data sources,so as to allow information to be passed between the applications or soas to allow the applications to share and access common data. Theapplications may furthermore access server one or more databases 126 viathe database servers 124, both shown in FIG. 1.

The networked system 102 may provide a number of publishing, listing andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods orservices. To this end, the marketplace applications 120 are shown toinclude at least one publication application 200 and one or more auctionapplications 202 which support auction-format listing and price settingmechanisms (e.g., English, Dutch, Vickrey, Chinese, Double, Reverseauctions etc.). The various auction applications 202 may also provide anumber of features in support of such auction-format listings, such as areserve price feature whereby a seller may specify a reserve price inconnection with a listing and a proxy-bidding feature whereby a biddermay invoke automated proxy bidding.

A number of fixed-price applications 204 support fixed-price listingformats (e.g., the traditional classified advertisement-type listing ora catalogue listing) and buyout-type listings. Specifically, buyout-typelistings (e.g., including the Buy-It-Now (BIN) technology developed byeBay Inc., of San Jose, Calif.) may be offered in conjunction withauction-format listings, and allow a buyer to purchase goods orservices, which are also being offered for sale via an auction, for afixed-price that is typically higher than the starting price of theauction.

Store applications 206 allow a seller to group listings within a“virtual” store, which may be branded and otherwise personalized by andfor the seller. Such a virtual store may also offer promotions,incentives and features that are specific and personalized to a relevantseller.

Reputation applications 208 allow users that transact, utilizing thenetworked system 102, to establish, build and maintain reputations,which may be made available and published to potential trading partners.Consider that where, for example, the networked system 202 supportsperson-to-person trading, users may otherwise have no history or otherreference information whereby the trustworthiness and credibility ofpotential trading partners may be assessed. The reputation applications208 allow a user, for example through feedback provided by othertransaction partners, to establish a reputation within the networkedsystem 102 over time. Other potential trading partners may thenreference such a reputation for the purposes of assessing credibilityand trustworthiness.

Personalization applications 210 allow users of the networked system 102to personalize various aspects of their interactions with the networkedsystem 102. For example a user may, utilizing an appropriatepersonalization application 210, create a personalized reference page atwhich information regarding transactions to which the user is (or hasbeen) a party may be viewed. Further, a personalization application 210may enable a user to personalize listings and other aspects of theirinteractions with the networked system 102 and other parties.

The networked system 102 may support a number of marketplaces that arecustomized, for example, for specific geographic regions. A version ofthe networked system 102 may be customized for the United Kingdom,whereas another version of the networked system 102 may be customizedfor the United States. Each of these versions may operate as anindependent marketplace, or may be customized (or internationalized)presentations of a common underlying marketplace. The networked system102 may accordingly include a number of internationalizationapplications 212 that customize information (and/or the presentation ofinformation) by the networked system 102 according to predeterminedcriteria (e.g., geographic, demographic or marketplace criteria). Forexample, the internationalization applications 212 may be used tosupport the customization of information for a number of regionalwebsites that are operated by the networked system 102 and that areaccessible via respective web servers 216.

Navigation of the networked system 102 may be facilitated by one or morenavigation applications 214. For example, a search application (as anexample of a navigation application) may enable key word searches oflistings published via the networked system 102. A browse applicationmay allow users to browse various category, catalogue, or inventory datastructures according to which listings may be classified within thenetworked system 102. Various other navigation applications may beprovided to supplement the search and browsing applications.

In order to make listings, available via the networked system 102, asvisually informing and attractive as possible, the marketplaceapplications 120 may include one or more imaging applications 216utilizing which users may upload images for inclusion within listings.An imaging application 216 also operates to incorporate images withinviewed listings. The imaging applications 216 may also support one ormore promotional features, such as image galleries that are presented topotential buyers. For example, sellers may pay an additional fee to havean image included within a gallery of images for promoted items.

Listing creation applications 218 allow sellers conveniently to authorlistings pertaining to goods or services that they wish to transact viathe networked system 102, and listing management applications 120 allowsellers to manage such listings. Specifically, where a particular sellerhas authored and/or published a large number of listings, the managementof such listings may present a challenge. The listing managementapplications 220 provide a number of features (e.g., auto-relisting,inventory level monitors, etc.) to assist the seller in managing suchlistings. One or more post-listing management applications 222 alsoassist sellers with a number of activities that typically occurpost-listing. For example, upon completion of an auction facilitated byone or more auction applications 102, a seller may wish to leavefeedback regarding a particular buyer. To this end, a post-listingmanagement application 222 may provide an interface to one or morereputation applications 208, so as to allow the seller conveniently toprovide feedback regarding multiple buyers to the reputationapplications 208.

Dispute resolution applications 224 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 224 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a third partymediator or arbitrator.

A number of fraud prevention applications 226 implement fraud detectionand prevention mechanisms to reduce the occurrence of fraud within thenetworked system 102.

Messaging applications 228 are responsible for the generation anddelivery of messages to users of the networked system 102, such messagesfor example advising users regarding the status of listings at thenetworked system 102 (e.g., providing “outbid” notices to bidders duringan auction process or to provide promotional and merchandisinginformation to users). Respective messaging applications 228 may utilizeany one have a number of message delivery networks and platforms todeliver messages to users. For example, messaging applications 228 maydeliver electronic mail (e-mail), instant message (IM), Short MessageService (SMS), text, facsimile, or voice (e.g., Voice over IP (VoIP))messages via the wired (e.g., the Internet), Plain Old Telephone Service(POTS), or wireless (e.g., mobile, cellular, WiFi, WiMAX) networks.

Merchandising applications 230 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the networked system 102. The merchandising applications 230 alsooperate the various merchandising features that may be invoked bysellers, and may monitor and track the success of merchandisingstrategies employed by sellers.

The networked system 102 itself, or one or more parties that transactvia the networked system 102, may operate loyalty programs that aresupported by one or more loyalty/promotions applications 232. Forexample, a buyer may earn loyalty or promotions points for eachtransaction established and/or concluded with a particular seller, andbe offered a reward for which accumulated loyalty points can beredeemed.

As described earlier, in an example embodiment, user actions undertakenin a main process on one device may spawn a workflow on another device.For example, the user may be undertaking an item listing process (mainprocess) on one device. When this listing process reaches a certainpoint, it may spawn a subprocess run on another device accessible to theuser. In one example, the n item listing process on a desktop computermay reach a point where the user is prompted to upload a photograph ofthe item to be listed. This may spawn a photo-taking subprocess on theuser's mobile device (e.g., smartphone). This photo-taking subprocessmay then run the user through the steps of taking a photograph (orselecting a photograph from ones already stored on the mobile device).In some embodiments, the subprocess may then undertake on its own topass output directly to a server (e.g., upload the photo directly to theitem listing server). In other embodiments, the subprocess may pass theoutput to the main process. Embodiments are also foreseen where thedevice running the subprocess can then pass the output of thesubprocess, as well as control of the process, back to the originaldevice (e.g., send the photo back to the main listing process, whichitself will upload the photo).

FIG. 3 is a diagram illustrating a method for guided photography on auser device in accordance with an example embodiment. As can be seen, auser device 300 may comprise an item listing application 302 and acamera 304. It should be noted that in this example embodiment, an APImay be utilized to permit the item listing application 302 to directlyaccess the camera 304. As such, the user may see a camerasub-application as part of the item listing application 302, and thecamera sub-application simply contacts the camera 304 to performhardware tasks, such as the capturing of a photograph by the camera. Theuser device 300 may, in an example embodiment, be a mobile device, suchas a cellular phone with an operating system capable of runningapplications, or “apps.” Also shown in the system is user 306. Ofcourse, the user is not an electronic or software component, and thus ismerely depicted in order to further the understanding of the subjectmatter of this disclosure.

At 308, the item listing application 302 may prompt the user 306 foritem listing information. This may include non-photograph relatedinformation, such as item title, description, starting prices, etc. At310, the user 306 provides the item listing information to theapplication 302. It should be noted that while this item listinginformation is depicted as being requested in a single step and providedin a single step, in reality this may involve a back-and-forth betweenthe item listing application 302 and the user 306 with the userproviding more information each time. Additionally, while thisinformation is depicted as being provided prior to any photographs ofthe item being provided, in reality some or all of the information couldbe requested and provided after what are depicted here as “later” steps.

At 312, the item listing application 302 may reach a designated point inthe listing process. At this point, a camera application subprocess maybe spawned at 314. This camera application subprocess will guide theuser through the steps of taking photographs appropriate for the genreof the item. Because the application 302 may be provided in a way thatit will be capable of being used to list a wide variety of applications,there may be a plurality of different camera application subprocesses,and the item listing application 302 decides which camera applicationsubprocess to spawn based on a category of the item. This category mayhave been communicated in the first listing information provided at 308.

At 316, the item listing application 302, via the camera applicationsubprocess, accesses the camera 304. At the same time, the applicationdisplayed a guide as to how the user should take a photograph at 318.This may include, for example, providing an overlay on top of aviewfinder within the camera application subprocess. The overlay maycontain a wireframe rendering of a generic item within the relevantcategory. For example, if the category is automobiles, then a genericcar wireframe may be overlayed on top of the image seen by the user 306This may also involve presenting instructions, for example verbalinstructions, to the user as to how to take the photograph, which mayinclude telling the user to alight the item with the wireframe, how toensure proper lighting, and how to ensure proper sharpness, for example.At 318, a live image may be transmitted from the camera 304 to itemlisting application 302. It should be noted that in some exampleembodiments, the camera 304 continuously outputs a live image to itemlisting application 302, after item listing application 302 accesses thecamera. The image may be a representation of what the camera 304 iscapturing at that particular point in time. As the user 306 moves theuser device 300, the image changes. This movement is depicted at 320,and another live image is depicted as being sent at 322. Presumably thelive image 322 will be an updated live image in light of the usermovement. Also presumably, the user movement is an attempt by the userto align the live image with the overlayed wireframe. Once the user issatisfied that the angle of the photograph is aligned with the overlayedwireframe, the user may provide user input indicting that a photographshould be taken. This may include, for example, depressing a virtual oractual button on the user device. This is depicted as 326. At 328, theimage captured by the camera 304 at the time the user input 326 wasreceived is saved as a first photograph of the item. This process thenrepeats using another guide as to how to take a photograph, such as anoverlay showing the generic wireframe at a different angle. Therepeating process is depicted at 3320-340. This process can repeat anynumber of times until the requisite number of photographs has beentaken, as dictated by the category.

FIG. 4 is a diagram illustrating a method for guided photography on auser device in accordance with another example embodiment. This diagramis similar to that of FIG. 3, except that rather an API being used toallow a camera application subprocess of application 302 to take thephotograph direct, a separate camera application 400 on user device 300is used for that purpose. At 402, the application 302 may prompt theuser 306 for item listing information. This may include non-photographrelated information, such as item title, description, starting prices,etc. At 404, the user 306 provides the item listing information to theapplication 302. As described above, while this item listing informationis depicted as being requested in a single step and provided in a singlestep, in reality this may involve a back-and-forth between theapplication 302 and the user 306 with the user providing moreinformation each time. Additionally, while this information is depictedas being provided prior to any photographs of the item being provided,in reality some or all of the information could be requested andprovided after what are depicted here as “later” steps.

At 406, the application 302 may reach a designated point in the listingprocess. At this point, instructions may be sent to the cameraapplication 400 at 408. These instructions may include instructions onoverlays to be presented from within the camera application 400. Thiscamera application 400 will guide the user through the steps of takingphotographs appropriate for the genre of the item. Because theapplication 302 may be provided in a way that it will be capable ofbeing used to list a wide variety of applications, there may be aplurality of different types of instructions to be sent to the cameraapplication 400, and the application 302 decides which information tosend based on a category of the item. This category may have beencommunicated in the first listing information provided at 404.

At 410, the camera application 400 accesses the camera 304. At the sametime, the camera application 400 displays a guide as to how the usershould take a photograph at 412. This may include, for example,providing an overlay on top of a viewfinder within the cameraapplication subprocess. The overlay may contain a wireframe rendering ofa generic item within the relevant category. At 414, a live image may betransmitted from the camera 304 to camera application 400. It should benoted that in some example embodiments, the camera 304 continuouslyoutputs a live image to camera application 400, after camera application400 accesses the camera. The image may be a representation of what thecamera 304 is capturing at that particular point in time. As the user306 moves the user device 300, the image changes. This movement isdepicted at 416, and another live image is depicted as being sent at420. Presumably the live image 420 will be an updated live image inlight of the user movement. Also presumably, the user movement is anattempt by the user to align the live image with the overlayedwireframe. Once the user is satisfied that the angle of the photographis aligned with the overlayed wireframe, the user may provide user inputindicting that a photograph should be taken. This may include, forexample, depressing a virtual or actual button on the user device. Thisis depicted as 422. At 424, the image captured by the camera 304 at thetime the user input 424 was received is saved as a first photograph ofthe item. This process then repeats using another guide as to how totake a photograph, such as an overlay showing the generic wireframe at adifferent angle. The repeating process is depicted at 426-438. Thisprocess can repeat any number of times until the requisite number ofphotographs has been taken, as dictated by the category.

In both FIGS. 3 and 4, the application 302 may periodically (or all inone batch) send the listing information as well as the photograph(s) toan item listing server (not pictured). This allows the listinginformation and the photograph(s) to be used in an online auction orother listing. Additionally, in some example embodiments, the server mayrender a three dimensional image of the item based upon the photographs.This will be described in more detail later.

It should be noted that it not necessary for the application 302 and thecamera application 400 to be located on the same physical device. WhileFIGS. 3 and 4 each depict both being contained on a single user device300, in another example embodiment, they are located on differentdevices. The camera application 400 may be located on, for example, amobile device having the camera 304, whereas the application 302 may becontained on another device, such as a desktop or laptop computer, oranother mobile device. As such, the spawning of the camera applicationalong with the transmitting of the overlay may actually result in aprocess occurring on a different device than the device on which theuser began the listing process. In essence, it becomes feasible for theuser to utilize multiple user devices to enter listing information for asingle item.

In a multiple-device embodiment, when the application 302 reaches thepoint at which a secondary process (such as a camera application 400)needs to be spawned on another device, it may be necessary for adetermination to be made about which other device to spawn thissecondary process, as well as how the secondary process should bepresented. There are many different configurations allowing for suchdeterminations, some of which will be presented herein. FIG. 5 is ablock diagram illustrating a system in accordance with an exampleembodiment. Here, the application 500 runs on a first user device 502. Acamera application 504 then operates on a second user device 506. Uponreaching a point in the main process at which the camera application 504should be spawned, the application 500 then notifies a server 508 thatthis point has been reached. The server 508 then identifies anappropriate user device on which to spawn the camera application. Thismay involve, for example, looking up stored device information specificto the user in a user account stored on a database 510. For example, theserver 508 may maintain an account for the user. The user may havepreviously registered the second user device 506 with the server 508under this account, and identified it as an appropriate device on whichto spawn the camera application 504. Thus, upon receiving a notificationfrom the first user device 502 that the point in the main process hasbeen reached, the server may then send a notification to the cameraapplication 504 on the second user device 506. Alternatively, the server508 can send the information about the second user device 506 to thefirst user device 502, allowing the first user device 502 to directlycontact the second user device 506

FIG. 6 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with an example embodiment. In this embodiment, a wireframemodel 600 is displayed over a live camera image 602. The user may thenuse this model 600 to position the user device 604 properly so that thevehicle 606 is displayed in the middle of the wireframe. Instructions608 may be provided to aid in this process.

In addition to wireframe, the system may be designed to perform imageprocessing and/or recognition and determine that the image is notpositioned properly for the desired shot. The system may then provideguidance as to the direction the user should move or rotate the userdevice in order to correct the shot. FIG. 7 is a diagram illustrating ascreen image of an item listing application suitable for implementingthe above-described methods in accordance with another exampleembodiment. In this embodiment, the wireframe model 700 is supplementedwith image processing, resulting in precise instructions 702 to the useras to how to move the user device 704. Here, the system has determinedthat the vehicle 706 is to the left of the desired shot, and thus theuser is instructed to move the user device 704 to the left.

In some example embodiments, this image processing may be performed onthe user device, but in other example embodiments a server may beutilized to perform the image processing.

In some example embodiments, the image processing may be extended todetermine the category of the item to be listed. For example, the usermay simply take a picture of a car, and the image processing may then beused to determine that the item is a car, and then the system canretrieve the appropriate guides and instructions to present to the userto aid in taking additional photographs/videos (e.g., the “car”wireframe may be retrieved and overlaid over the live image from thecamera, and a “script” appropriate for taking pictures of cars may beretrieved and executed).

FIG. 8 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with another example embodiment. Here, image processing isperformed to determine the position of the image. In contrast to FIG. 7,however, in this embodiment there is no wireframe model. The systemsimply performs the image processing and provides instructions 800 as tohow the user should move the user device 802.

FIG. 9 is a diagram illustrating a screen image of an item listingapplication suitable for implementing the above-described methods inaccordance with another example embodiment. In this embodiment, the useris simply instructed to take a video of the vehicle 900 by walking allthe way around the vehicle. As the user walks, the system analyzes thevideo and extracts appropriately angled shots to match some presetcriteria for the item. Thus, this embodiment depicts real-time videoprocessing and extracted of still images from the video. Of course, thisvideo processing could also be performed after the user has completelycircled the vehicle 900, by the user device 902 or by a separate server.

Referring first to FIG. 6A, a wireframe model 600 may be overlayed overa live image 602 from a camera. While the general angle of the vehiclein the live image is similar to that of the wireframe model, the vehicleis actually at a 180 degree angle from wireframe model. As such, inbetween FIG. 6A and FIG. 6B, the user moves the mobile device to theopposite location around the car. Therefore, in FIG. 6B, the vehicle isroughly in the correct orientation and the user is able to take thepicture. Once the picture is taken, it is saved and the cameraapplication (or item listing application) can advance to the nextwireframe, depicted as 604 in FIG. 6C. Here, the same live image as wastaken in FIG. 6B is still present, but a new wireframe 604 is overlayed,showing the user the orientation of the next photo to take. As such, theuser may move the mobile device to yet another orientation, resulting inthe live image displayed in FIG. 6D, which roughly corresponds to theorientation of the wireframe. The user may then take this secondphotograph. The process may continue until all the specified photos forthe item category have been taken.

It should be noted that while the aforementioned describes a process fortaking individual photographs, in some example embodiments the sameconcept can be extended to taking videos. Specifically, a user can beprovided with an overlay that guides the user as to the angles to takewith the video. Rather than waiting for user input indicating that aparticular angle's shot has been completed, as with a photo, in thevideo embodiment the system can detect that the user has achieved thedesired angle and then automatically prompt the user for the next angle,altering the overlay in real time.

In another example embodiment, the photographs and/or videos taken usingthis process can be checked by either the application, the cameraapplication, or the server to determine if desired criteria are met. Forexample, the system could examine a photograph to determine whether thedesired angle was achieved, whether a minimum lighting standard has beenachieved, whether appropriate sharpness (i.e., not blurry) has beenachieved, and so on. Similar examination can be made of a video. If thephoto or video does not meet the desired criteria, the user can beprompted to retake that particular photo or video. This checking caneither be performed in real time, e.g., as soon as the user takes aphoto it can be checked and the user prompted to retake if necessarybefore the user is allowed to progress to the next angle, or it can bechecked after the entire photo or video taking process is complete.

FIG. 10 is a flow diagram illustrating a method for guiding the captureof information from a camera on a user device in accordance with anexample embodiment. At 1000, an item listing process is run in an itemlisting application. At 1002, upon reaching a specified point in theitem listing process, a camera application is triggered to enable a userto capture images using the camera. The triggering includes providing awireframe overlay informing the user as to an angle at which to captureimages from the camera. At 1004, images are received from the camera inresponse to user input, such as the depressing of a virtual or physicalbutton. At 1006, the images from the camera are utilized in an itemlisting sent to an item listing server.

FIG. 11 is a flow diagram illustrating a method for guiding the captureof information from a camera on a user device in accordance with anotherexample embodiment. In this example embodiment, no separate cameraapplication is used, but rather the camera is directly accessed via anAPI by the item listing application. At 1100, an item listing process isrun in an item listing application. At 1102, upon reaching a specifiedpoint in the item listing process, a camera is accessed through an API,overlaying a wireframe over images from the camera displayed in the itemlisting application to inform the user as to an angle at which tocapture images from the camera. At 1104, images are received from thecamera in response to user input, such as the depressing of a virtual orphysical button. At 1106, the images from the camera are utilized in anitem listing sent to an item listing server.

FIG. 12 shows a diagrammatic representation of machine in the exampleform of a computer system 1200 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a server computer,a client computer, a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The example computer system 1200 includes a processor 1202 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 1204 and a static memory 1206, which communicate with eachother via a bus 1208. The computer system 1200 may further include avideo display unit 1210 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 1200 also includes analphanumeric input device 1212 (e.g., a keyboard), a cursor controldevice 1214 (e.g., a mouse), a disk drive unit 1216, a signal generationdevice 1218 (e.g., a speaker) and a network interface device 1220.

The disk drive unit 1216 includes a machine-readable medium 1222 onwhich is stored one or more sets of instructions (e.g., software 1224)embodying any one or more of the methodologies or functions describedherein. The software 1224 may also reside, completely or at leastpartially, within the main memory 1204 and/or within the processor 1202during execution thereof by the computer system 1200, the main memory1204 and the processor 1202 also constituting machine-readable media.

The software 1224 may further be transmitted or received over a network1226 via the network interface device 1220.

While the machine-readable medium 1222 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present invention. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media, and carrier wavesignals.

Although the present invention has been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the invention.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense.

The Abstract of the Disclosure is provided to comply with 107 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

1. A system comprising: a first user device including: a firstapplication configured to: receive an indication that a user intends tophotograph an object; determine a category for the object; use thecategory for the object to retrieve a wireframe overlay corresponding tothe category from a plurality of possible wireframe overlays; access anaccount stored for the user in a database to obtain a listing ofregistered devices for the user; and trigger a camera application on oneof the registered devices for the user to display the wireframe overlayto the user, informing the user as to an orientation at which to captureimages using the one of the registered devices.
 2. The system of claim1, wherein the orientation includes an angle.
 3. The system of claim 1,wherein the one of the registered devices is a mobile device.
 4. Thesystem of claim 1, wherein the first application is further configuredto create a three-dimensional model of the object using the imagescaptured using the one of the registered devices.
 5. A method forguiding the capture of information from a camera, comprising: receivingan indication that a user intends to photograph an object; determining acategory for the object; using the category for the object to retrieve awireframe overlay corresponding to the category from a plurality ofpossible wireframe overlays; accessing an account stored for the user ina database to obtain a listing of registered devices for the user; andtriggering a camera application on one of the registered devices for theuser to display the wireframe overlay to the user, informing the user asto an orientation at which to capture images using the one of theregistered devices.
 6. The method of claim 5, wherein the orientationincludes an angle.
 7. The method of claim 5, wherein the one of theregistered devices is a mobile device.
 8. The method of claim 5, furthercomprising creating a three-dimensional model of the object using theimages captured using the one of the registered devices.
 9. The methodof claim 5, further comprising: performing image recognition on thecaptured images; and sending instructions to the camera application fordisplay to the user, the instructions indicating how to alterpositioning of the one of the registered devices to improve capturedimages, based on the image recognition.
 10. The method of claim 9,wherein the camera application is configured to play the instructionsverbally as audio output.
 11. The method of claim 5, further comprising,after capturing of the images, checking the images to determine if theymeet preset criteria and, if not, informing the user to retake theimages.
 12. The method of claim 11, wherein the preset criteria includesufficient lighting.
 13. The method of claim 11, wherein the presetcriteria include appropriate angles.
 14. The method of claim 11, whereinthe preset criteria include sufficient sharpness.
 15. A non-transitorymachine-readable storage medium having instruction data to cause amachine to execute a method to perform operations comprising: receivingan indication that a user intends to photograph an object; determining acategory for the object; using the category for the object to retrieve awireframe overlay corresponding to the category from a plurality ofpossible wireframe overlays; accessing an account stored for the user ina database to obtain a listing of registered devices for the user; andtriggering a camera application on one of the registered devices for theuser to display the wireframe overlay to the user, informing the user asto an orientation at which to capture images using the one of theregistered devices.
 16. The on-transitory machine-readable storagemedium of claim 15, further comprising: performing image recognition onthe captured images; and sending instructions to the camera applicationfor display to the user, the instructions indicating how to alterpositioning of the one of the registered devices to improve capturedimages, based on the image recognition.
 17. The on-transitorymachine-readable storage medium of claim 15, further comprising, aftercapturing of the images, checking the images to determine if they meetpreset criteria and, if not, informing the user to retake the images.18. The on-transitory machine-readable storage medium of claim 17,wherein the preset criteria include sufficient lighting.
 19. Theon-transitory machine-readable storage medium of claim 17, wherein thepreset criteria include appropriate angles.
 20. The non-transitorymachine-readable storage medium of claim 17, wherein the preset criteriainclude sufficient sharpness.